package cn.wlinker.video.monitor.service;

import cn.wlinker.video.monitor.domain.dto.MonitorDeviceDTO;
import cn.wlinker.video.monitor.domain.vo.PresetAddVO;

/**
 * 云台控制接口
 *
 * @author gxsjx
 * @version 1.0
 * @date 2022/11/9
 */
public interface IPtzControlService {
    /**
     * 开始云台转动
     *
     * @param monitorDeviceDTO
     * @param direction
     * @param speed
     * @return
     */
    default Boolean ptzStart(MonitorDeviceDTO monitorDeviceDTO, Integer direction, Integer speed) {
        throw new UnsupportedOperationException("不支持相关操作");
    }

    /**
     * 停止云台转动
     * @param monitorDeviceDTO
     * @param direction
     * @return
     */
    default Boolean ptzStop(MonitorDeviceDTO monitorDeviceDTO, Integer direction) {
        throw new UnsupportedOperationException("不支持相关操作");
    }

    /**
     * 添加预置点
     *
     * @param monitorDeviceDTO
     * @param index
     * @return
     */
    default PresetAddVO presetAdd(MonitorDeviceDTO monitorDeviceDTO, Integer index) {
        throw new UnsupportedOperationException("不支持相关操作");
    }

    /**
     * 调用预置点
     *
     * @param monitorDeviceDTO
     * @param index
     * @return
     */
    default Boolean presetMove(MonitorDeviceDTO monitorDeviceDTO, Integer index) {
        throw new UnsupportedOperationException("不支持相关操作");
    }

    /**
     *  清除预置点
     *
     * @param monitorDeviceDTO
     * @return
     */
    default Boolean presetClear(MonitorDeviceDTO monitorDeviceDTO, Integer index) {
        throw new UnsupportedOperationException("不支持相关操作");
    }


}
